package com.cn.gmall.task.scheduled;

import com.cn.gmall.common.mqconst.MqConst;
import com.cn.gmall.common.service.RabbitService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;

@Component
@EnableScheduling //开启定时器

public class ScheduledTask {
    @Resource
    private RabbitService rabbitService;

    /**
     * 每天 将缓存的数据清理
     */
    @Scheduled(cron ="0/10 * * * * ?") //测试 10 秒一次
    public void task_18() {
        System.out.println("定时任务执行清理秒杀结束数据。。。。。。");
        //发送消息到活动模块进行缓存预热
        rabbitService.sendMessage(
                MqConst.EXCHANGE_DIRECT_TASK,
                MqConst.ROUTING_TASK_18,
                ""
        );
    }


        /**
         * 秒 分 时  日 月 星期 年（可省略）
         *
         * 特殊符号：
         *       1.* 每个时间单位都执行
         *       2. , 或者
         *       3. - 区间
         *       4. 日期 和星期的问题
         *       每天凌晨
         * cron="0 0 1 * * ?"
         */
@Scheduled(cron = "0 0 1 * * ?")  //每天凌晨一点 将秒杀满足条件的 放到redis 里面
//@Scheduled(cron = "0/10 * * * * ?")//测试 每10秒发一次
    public void taskToRedis() {
    //发送消息到活动模块进行缓存预热
rabbitService.sendMessage(
        MqConst.EXCHANGE_DIRECT_TASK,
        MqConst.ROUTING_TASK_1,
        "");
    }
}
